from generic_piece import Piece
from costants import *
from random import randint
####################################################################################
####################################################################################
class Blue(Piece):
	def __init__(self, x=0, y=0, angle=0):
		Piece.__init__(self,BLUE_IMAGE,x,y,angle)
		self.color='B'
		
	def positions(self,x,y,angle):
		if angle==0 or angle==180:
			return [(y,x),(y,x+1),(y,x+2),(y,x+3)]
		if angle==90 or angle==270:
			return [(y,x),(y+1,x),(y+2,x),(y+3,x)]
####################################################################################
class Green(Piece):
	def __init__(self, x=0, y=0, angle=90):
		Piece.__init__(self,GREEN_IMAGE,x,y,angle)
		self.color='G'
		
	def positions(self,x,y,angle):
		if angle==0:
			return [(y,x+1),(y+1,x+1),(y+2,x+1),(y+1,x)]
		if angle==90:
			return [(y,x),(y,x+1),(y+1,x+1),(y,x+2)]			
		if angle==180:
			return [(y,x),(y+1,x),(y+2,x),(y+1,x+1)]
		if angle==270:
			return [(y,x+1),(y+1,x),(y+1,x+1),(y+1,x+2)]
####################################################################################
class Purple(Piece):
	def __init__(self, x=0,y=0,angle=0):
		Piece.__init__(self,PURPLE_IMAGE,x,y,angle)
		self.color='P'
		
	def positions(self,x,y,angle):
		if angle==0:
			return [(y,x),(y,x+1),(y,x+2),(y+1,x+2)]
		if angle==90:
			return [(y,x),(y,x+1),(y+1,x),(y+2,x)]		
		if angle==180:
			return [(y,x),(y+1,x),(y+1,x+1),(y+1,x+2)]
		if angle==270:
			return [(y+2,x),(y,x+1),(y+1,x+1),(y+2,x+1)]
####################################################################################
class Red(Piece):
	def __init__(self, x=0, y=0, angle=0):
		Piece.__init__(self,RED_IMAGE,x,y,angle)
		self.color='R'
		
	def positions(self,x,y,angle):
		return [(y,x),(y,x+1),(y+1,x+1),(y+1,x)]
####################################################################################
class Yellow(Piece):
	def __init__(self, x=0, y=0, angle=90):
		Piece.__init__(self,YELLOW_IMAGE,x,y,angle)
		self.color='Y'
		
	def positions(self,x,y,angle):
		if angle==0 or angle==180:
			return [(y,x+1),(y+1,x),(y+1,x+1),(y+2,x)]
		if angle==90 or angle==270:
			return [(y,x),(y,x+1),(y+1,x+1),(y+1,x+2)]
####################################################################################
####################################################################################

def random_color():
	n=randint(1,5)
	if n==1: return Red()
	if n==2: return Yellow()
	if n==3: return Blue()
	if n==4: return Purple()
	if n==5: return Green()